home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-20 | 43.0 KB | 1,141 lines |
-
-
- Network Working Group S. E. Deering
- Request for Comments: 988 Stanford University
- July 1986
-
- Host Extensions for IP Multicasting
-
-
- 1. STATUS OF THIS MEMO
-
- This memo specifies the extensions required of a host implementation
- of the Internet Protocol (IP) to support internetwork multicasting.
- This specification supersedes that given in RFC-966, and constitutes
- a proposed protocol standard for IP multicasting in the
- ARPA-Internet. The reader is directed to RFC-966 for a discussion of
- the motivation and rationale behind the multicasting extension
- specified here. Distribution of this memo is unlimited.
-
- 2. INTRODUCTION
-
- IP multicasting is defined as the transmission of an IP datagram to a
- "host group", a set of zero or more hosts identified by a single IP
- destination address. A multicast datagram is delivered to all
- members of its destination host group with the same "best-efforts"
- reliability as regular unicast IP datagrams, i.e. the datagram is not
- guaranteed to arrive at all members of the destination group or in
- the same order relative to other datagrams.
-
- The membership of a host group is dynamic; that is, hosts may join
- and leave groups at any time. There is no restriction on the
- location or number of members in a host group, but membership in a
- group may be restricted to only those hosts possessing a private
- access key. A host may be a member of more than one group at a time.
- A host need not be a member of a group to send datagrams to it.
-
- A host group may be permanent or transient. A permanent group has a
- well-known, administratively assigned IP address. It is the address,
- not the membership of the group, that is permanent; at any time a
- permanent group may have any number of members, even zero. A
- transient group, on the other hand, is assigned an address
- dynamically when the group is created, at the request of a host. A
- transient group ceases to exist, and its address becomes eligible for
- reassignment, when its membership drops to zero.
-
- The creation of transient groups and the maintenance of group
- membership information is the responsibility of "multicast agents",
- entities that reside in internet gateways or other special-purpose
- hosts. There is at least one multicast agent directly attached to
- every IP network or subnetwork that supports IP multicasting. A host
- requests the creation of new groups, and joins or leaves existing
- groups, by exchanging messages with a neighboring agent.
-
-
-
- Deering [Page 1]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- Multicast agents are also responsible for internetwork delivery of
- multicast IP datagrams. When sending a multicast IP datagram, a host
- transmits it to a local network multicast address which identifies
- all neighboring members of the destination host group. If the group
- has members on other networks, a multicast agent becomes an
- additional recipient of the local multicast and relays the datagram
- to agents on each of those other networks, via the internet gateway
- system. Finally, the agents on the other networks each transmit the
- datagram as a local multicast to their own neighboring members of the
- destination group.
-
- This memo specifies the extensions required of a host IP
- implementation to support IP multicasting, where a "host" is any
- internet host or gateway other than those serving as multicast
- agents. The algorithms and protocols used within and between
- multicast agents are transparent to non-agent hosts and will be
- specified in a separate document. This memo also does not specify
- how local network multicasting is accomplished for all types of
- network, although it does specify the required service interface to
- an arbitrary local network and gives an Ethernet specification as an
- example. Specifications for other types of network will be the
- subject of future memos.
-
- 3. LEVELS OF CONFORMANCE
-
- There are three levels of conformance to this specification:
-
- Level 0: no support for IP multicasting.
-
- There is, at this time, no requirement that all IP implementations
- support IP multicasting. Level 0 hosts will, in general, be
- unaffected by multicast activity. The only exception arises on
- some types of local network, where the presence of level 1 or 2
- hosts may cause misdelivery of multicast IP datagrams to level 0
- hosts. Such datagrams can easily be identified by the presence of
- a class D IP address in their destination address field; they
- should be quietly discarded by hosts that do not support IP
- multicasting. Class D addresses are defined in section 4 of this
- memo.
-
-
-
-
-
-
-
-
-
-
- Deering [Page 2]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- Level 1: support for sending but not receiving multicast IP
- datagrams.
-
- Level 1 allows a host to partake of some multicast-based services,
- such as resource location or status reporting, but it does not
- allow a host to create or join any host groups. An IP
- implementation may be upgraded from level 0 to level 1 very easily
- and with little new code. Only sections 4, 5, and 6 of this memo
- are applicable to level 1 implementations.
-
- Level 2: full support for IP multicasting.
-
- Level 2 allows a host to create, join and leave host groups, as
- well as send IP datagrams to host groups. It requires
- implementation of the Internet Group Management Protocol (IGMP)
- and extension of the IP and local network service interfaces
- within the host. All of the following sections of this memo are
- applicable to level 2 implementations.
-
- 4. HOST GROUP ADDRESSES
-
- Host groups are identified by class D IP addresses, i.e. those with
- "1110" as their high-order four bits. The remaining 28 bits are
- unstructured as far as hosts are concerned. The addresses of
- well-known, permanent groups are to be published in "Assigned
- Numbers". Class E IP addresses, i.e. those with "1111" as their
- high-order four bits, are reserved for future addressing modes.
-
- Appendix II contains some background discussion of several issues
- related to host group addresses.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering [Page 3]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- 5. MODEL OF A HOST IP IMPLEMENTATION
-
- The multicast extensions to a host IP implementation are specified in
- terms of the layered model illustrated below. In this model, ICMP
- and (for level 2 hosts) IGMP are considered to be implemented within
- the IP module, and the mapping of IP addresses to local network
- addresses is considered to be the responsibility of local network
- modules. This model is for expository purposes only, and should not
- be construed as constraining an actual implementation.
-
- | |
- | Upper-Layer Protocol Modules |
- |__________________________________________________________|
-
- --------------------- IP Service Interface -----------------------
- __________________________________________________________
- | | | |
- | | ICMP | IGMP |
- | IP |______________|______________|
- | Module |
- | |
- |__________________________________________________________|
-
- ---------------- Local Network Service Interface -----------------
- __________________________________________________________
- | | |
- | Local | IP-to-local address mapping |
- | Network | (e.g. ARP) |
- | Modules |_____________________________|
- | (e.g. Ethernet) |
- | |
-
- To support level 2 IP multicasting, a host IP implementation must
- provide three new services: (1) sending multicast IP datagrams, (2)
- receiving multicast IP datagrams, and (3) managing group membership.
- Only the first service need be provided in level 1 hosts. Each of
- these services is described in a separate section, below. For each
- service, extensions are specified for the IP service interface, the
- IP module, the local network service interface, and an Ethernet local
- network module. Extensions to local network modules other than
- Ethernet are mentioned briefly, but are not specified in detail.
-
-
-
-
-
-
-
-
- Deering [Page 4]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- 6. SENDING MULTICAST IP DATAGRAMS
-
- 6.1. Extensions to the IP Service Interface
-
- No change to the IP service interface is required to support the
- sending of multicast IP datagrams. An upper-layer protocol module
- merely specifies an IP host group destination, rather than an
- individual IP destination, when it invokes the existing "Send IP"
- operation.
-
- 6.2. Extensions to the IP Module
-
- To support the sending of multicast IP datagrams, the IP module
- must be extended to recognize IP host group addresses when routing
- outgoing datagrams. Most IP implementations include the following
- logic:
-
- if IP-destination is on the same local network,
- send datagram locally to IP-destination
- else
- send datagram locally to GatewayTo(IP-destination)
-
- To allow multicast transmissions, the routing logic must be
- changed to:
-
- if IP-destination is on the same local network
- or IP-destination is a host group,
- send datagram locally to IP-destination
- else
- send datagram locally to GatewayTo(IP-destination)
-
- If the sending host is itself a member of the destination group, a
- copy of the outgoing datagram must be looped-back for local
- delivery if and only if loopback was requested when the host
- joined the group (see section 8.1). (This issue does not arise in
- level 1 implementations.)
-
- On hosts attached to more than one network, each multicast IP
- datagram must be transmitted via one network interface only,
- leaving it to the multicast agents to effect delivery to any other
- required networks.
-
- A host group address should not be placed in the source address
- field of an outgoing IP datagram. A host group address may be
- used in a source routing option as the last element only.
-
- It should be noted that a small IP time-to-live (TTL) value can
-
-
- Deering [Page 5]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- prevent delivery to some members of a destination group. Thus, a
- large TTL value should be used to reach all members. Conversely,
- a small TTL value can be used to advantage to reach only "nearby"
- members of a widely-dispersed group. In clusters of low-delay
- local area networks, the TTL field acts as a hop limit; thus, one
- can perform expanding-ring searches by starting with a TTL of 1
- and incrementing on each retransmission, up to some limit defined
- by the diameter of the cluster.
-
- 6.3. Extensions to the Local Network Service Interface
-
- No change to the local network service interface is required to
- support the sending of multicast IP datagrams. The IP module
- merely specifies an IP host group destination, rather than an
- individual IP destination, when it invokes the existing "Send
- Local" operation.
-
- 6.4. Extensions to an Ethernet Local Network Module
-
- The Ethernet directly supports the sending of local multicast
- packets by allowing multicast addresses in the destination field
- of Ethernet packets. All that is needed to support the sending of
- multicast IP datagrams is a procedure for mapping IP host group
- addresses to Ethernet multicast addresses.
-
- An IP host group address is mapped to an Ethernet multicast
- address by placing the low-order 28-bits of the IP address into
- the low-order 28 bits of an Ethernet address. The high-order 20
- bits of the Ethernet address are set to a well-known value, to be
- published in "Assigned Numbers".
-
- [At time of publication of this memo, a block of Ethernet
- multicast addresses with 28 unspecified bits had not yet been
- obtained from the allocating authority. If such a block of
- addresses cannot be obtained, an alternative mapping scheme will
- be specified.]
-
- 6.5. Extensions to Local Network Modules other than Ethernet
-
- Other networks that directly support multicasting, such as rings
- or buses conforming to the IEEE 802.2 standard, can be handled the
- same way as Ethernet for the purpose of sending multicast IP
- datagrams. For a network that supports broadcast but not
- multicast, such as the Experimental Ethernet, all IP host group
- addresses can be mapped to a single local broadcast address (at
- the cost of increased overhead on all local hosts). For a
- point-to-point networks like the ARPANET or a public data network
-
-
- Deering [Page 6]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- (X.25), all IP host group addresses might be mapped to the
- well-known local address of an IP multicast agent; an agent on
- such a network would take responsibility for completing multicast
- delivery within the network as well as among networks.
-
- 7. RECEIVING MULTICAST IP DATAGRAMS
-
- 7.1. Extensions to the IP Service Interface
-
- No change to the IP service interface is required to support the
- reception of multicast IP datagrams. Incoming multicast IP
- datagrams are delivered to upper-layer protocol modules using the
- same "Receive IP" operation as normal, unicast datagrams.
-
- 7.2. Extensions to the IP Module
-
- To support the reception of multicast IP datagrams, the IP module
- must be extended to recognize the addresses of IP host groups to
- which the host currently belongs, in addition to the host's
- individual IP address(es). An incoming datagram destined to one
- of those group addresses is processed exactly the same way as
- datagrams destined to one of the host's individual addresses.
- Incoming datagrams destined to groups to which the host does not
- belong are discarded without generating any error report.
-
- On hosts attached to more than one network, if a datagram arrives
- via one network interface, destined for a group to which the host
- belongs only on a different interface, the datagram is quietly
- discarded. (This should occur only as a result of inadequate
- multicast address filtering in the local network module.)
-
- An incoming datagram is not rejected for having an IP host group
- address in its source address field or anywhere in a source
- routing option.
-
- An ICMP error message (Destination Unreachable, Time Exceeded,
- Parameter Problem, Source Quench, or Redirect) is never generated
- in response to a datagram destined to an IP host group.
-
- 7.3. Extensions to the Local Network Service Interface
-
- No change to the local network service interface is required to
- support the reception of multicast IP datagrams. Incoming local
- network packets, whether multicast or unicast, are delivered to
- the IP module using the same "Receive Local" operation.
-
-
-
-
- Deering [Page 7]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- 7.4. Extensions to an Ethernet Local Network Module
-
- To support the reception of multicast IP datagrams, an Ethernet
- module must be able to receive packets addressed to the Ethernet
- multicast addresses that correspond to the host's IP host group
- addresses. It is highly desirable to take advantage of any
- address filtering capabilities that the Ethernet hardware
- interface may have, so that the host only receives packets that
- are destined to it.
-
- Unfortunately, many current Ethernet interfaces have a small limit
- on the number of addresses that the hardware can be configured to
- recognize. However, an implementation must be capable of
- listening on an arbitrary number of Ethernet multicast addresses,
- which may mean "opening up" the address filter to accept all
- multicast packets during those periods when the number of
- addresses exceeds the limit of the filter.
-
- For interfaces with inadequate hardware address filtering, it may
- be desirable (for performance reasons) to perform Ethernet address
- filtering within the software of the Ethernet module. This is not
- mandatory, however, because the IP module performs its own
- filtering based on IP destination addresses.
-
- 7.5. Extensions to Local Network Modules other than Ethernet
-
- Other multicast networks, such as IEEE 802.2 networks, can be
- handled the same way as Ethernet for the purpose of receiving
- multicast IP datagrams. For pure broadcast networks, such as the
- Experimental Ethernet, all incoming broadcast packets can be
- accepted and passed to the IP module for IP-level filtering. On a
- point-to-point network, multicast IP datagrams will arrive as
- local network unicasts, so no change to the local network module
- should be necessary.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering [Page 8]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- 8. MANAGING GROUP MEMBERSHIP
-
- 8.1. Extensions to the IP Service Interface
-
- To allow upper-layer protocol modules to request that their host
- create, join, or leave a host group, the IP service interface must
- be extended to offer the following three new operations:
-
- CreateGroup ( private, loopback )
- --> outcome, group-address, access-key
-
- The CreateGroup operation requests the creation of a new,
- transient host group, with this host as its only member. The
- "private" argument specifies if the group is to be private or
- public. The "loopback" argument specifies whether or not
- datagrams sent from this host to the group should be delivered
- locally as well as to other member hosts. The "outcome" result
- indicates whether the request is granted or denied. If it is
- granted, a new 32-bit IP host group address is returned, along
- with a 64-bit access key which is zero for public groups and
- non-zero for private groups. The request may be denied due to
- lack of response from a multicast agent, or lack of resources.
-
- JoinGroup ( group-address, access-key, loopback ) --> outcome
-
- The JoinGroup operation requests that this host become a member of
- the host group identified by "group-address", with the specified
- access key. The "loopback" argument specifies whether or not
- datagrams sent from this host to the group should be delivered
- locally as well as to other member hosts. The "outcome" result
- indicates whether the request is granted or denied. The request
- may be denied due to lack of response from a multicast agent, lack
- of resources, an invalid group address, an incorrect access key,
- or already being a member.
-
- LeaveGroup ( group-address, access-key ) --> outcome
-
- The LeaveGroup operation requests that this host give up its
- membership in the host group identified by "group-address", with
- the specified access key. The "outcome" result indicates whether
- the request is granted or denied. The request may be denied due
- to an invalid group address, an incorrect access key, or not
- currently being a member.
-
- Each of these operations may take up to a minute or more to
- complete, depending on the number of IGMP retransmissions
-
-
-
- Deering [Page 9]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- performed within the IP module, and time required for a multicast
- agent to generate a reply. However, typical delays should be on
- the order of a few seconds.
-
- Besides the LeaveGroup operation, a host loses its membership in a
- group whenever the host or its IP module crashes, or, in rare
- circumstances, when a multicast agent revokes its membership. The
- IP service interface should provide some means of informing an
- upper-layer module when its membership has been revoked.
- Membership may be revoked due to lack of resources, deallocation
- of the group address, or the discovery of another host group using
- the same group address with a different access key. (See Appendix
- II for discussion of address recycling issues.)
-
- It is important to observe that IP group membership is per-host,
- rather than per-process. An IP service interface should not allow
- multiple processes to invoke JoinGroup operations for the same
- group as a way of achieving delivery to more than process. The IP
- module delivers each incoming datagram, whether multicast or
- unicast, to the single upper-layer protocol module identified by
- the protocol field in the datagram's IP header; it is an
- upper-layer issue whether or not to deliver incoming datagrams to
- more than one process, perhaps using the concept of "process
- groups" or "shared ports".
-
- 8.2. Extensions to the IP Module
-
- Within the IP module, the membership management operations are
- supported by the Internet Group Management Protocol (IGMP),
- specified in Appendix I. As well as having messages corresponding
- to each of the operations specified above, IGMP also specifies a
- "deadman timer" procedure whereby hosts periodically confirm their
- memberships with the multicast agents.
-
- The IP module must maintain a data structure listing the IP
- addresses of all host groups to which the host currently belongs,
- along with each group's loopback policy, access key, and timer
- variables. This data structure is used by the IP multicast
- transmission service to know which outgoing datagrams to loop
- back, and by the reception service to know which incoming
- datagrams to accept. The purpose of IGMP and the management
- interface operations is to maintain this data structure.
-
- On hosts attached to more than one network, each membership is
- associated with a particular network interface. On such a host
- the management interface operations above may each require an
- additional parameter specifying to which interface the create,
-
-
- Deering [Page 10]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- join, or leave request applies. The group membership data
- structure must also be extended to associate an interface with
- each membership. If a host joins the same host group on more than
- one network interface, it can expect to receive multiple copies of
- each datagram sent to that group.
-
- 8.3. Extensions to the Local Network Service Interface
-
- To allow an IP module to control what packets should be accepted
- by the local network module, it is necessary to extend the local
- network service interface with the following two new operations:
-
- AcceptAddress ( group-address )
-
- RejectAddress ( group-address )
-
- where "group-address" is an IP host group address. The
- AcceptAddress operation requests the local network module to
- accept and deliver up subsequently arriving packets destined to
- the local network address corresponding to "group-address". The
- RejectAddress operation requests the local network module to stop
- delivering up packets destined to the local network address
- corresponding to "group-address".
-
- Any local network module is free to ignore RejectAddress requests,
- and may deliver up packets destined to more addresses than just
- those specified in AcceptAddress requests, if it is unable to
- filter incoming packets adequately.
-
- 8.4. Extensions to an Ethernet Local Network Module
-
- An Ethernet module responds to AcceptAddress operations by adding
- the corresponding Ethernet multicast address to its acceptance
- filter for incoming packets. A RejectAddress operation causes the
- corresponding Ethernet address to be dropped from the filter. For
- Ethernet interfaces with a limit on the number of addresses that
- can be added to the filter, the Ethernet software module must
- detect when that threshold is exceeded and open up the filter to
- accept all multicast packets. It should also detect when the
- number of addresses drops below the threshold and revert to
- individual address filtering.
-
- 8.5. Extensions to Local Network Modules other than Ethernet
-
- Other multicast networks, such as IEEE 802.2 networks, can be
- handled the same way as Ethernet for the purpose of controlling
- address filtering. For a pure broadcast network or a
-
-
- Deering [Page 11]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- point-to-point network, the AcceptAddress and RejectAddress
- operations may have no effect; all incoming packets could be
- passed to the IP module for IP-level filtering.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering [Page 12]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- APPENDIX I. INTERNET GROUP MANAGEMENT PROTOCOL (IGMP)
-
- The Internet Group Management Protocol (IGMP) is used between IP
- hosts and their immediate neighbor multicast agents to support the
- creation of transient groups, the addition and deletion of members of
- a group, and the periodic confirmation of group membership. IGMP is
- an asymmetric protocol and is specified here from the point of view
- of a host, rather than a multicast agent.
-
- Like ICMP, IGMP is a integral part of IP. It is required to be
- implemented in full by all hosts conforming to level 2 of the IP
- multicasting specification. IGMP messages are encapsulated in IP
- datagrams, with an IP protocol number of 2. All IGMP messages have
- the following format:
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Type | Code | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identifier |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Group Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + Access Key +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- Type
-
- There are eight types of IGMP message:
-
- 1 = Create Group Request
- 2 = Create Group Reply
-
- 3 = Join Group Request
- 4 = Join Group Reply
-
- 5 = Leave Group Request
- 6 = Leave Group Reply
-
- 7 = Confirm Group Request
- 8 = Confirm Group Reply
-
-
-
-
-
- Deering [Page 13]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- Code
-
- In a Create Group Request message, the code field indicates if the
- new host group is to be public or private:
-
- 0 = public
- 1 = private
-
- In all other Request messages, the code field contains zero.
-
- In a Reply message, the Code field specifies the outcome of the
- request:
-
- 0 = request granted
- 1 = request denied, no resources
- 2 = request denied, invalid code
- 3 = request denied, invalid group address
- 4 = request denied, invalid access key
- 5 - 255 = request pending, retry in this many seconds
-
- Checksum
-
- The checksum is the 16-bit one's complement of the one's
- complement sum of the IGMP message starting with the IGMP Type.
- For computing the checksum, the checksum field should be zero.
-
- Identifier
-
- In a Confirm Group Request message, the identifier field contains
- zero.
-
- In all other Request messages, the identifier field contains a
- value to distinguish the request from other requests by the same
- host.
-
- In a Reply message, the identifier field contains the same value
- as in the corresponding Request message.
-
-
-
-
-
-
-
-
-
-
-
-
- Deering [Page 14]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- Group Address
-
- In a Create Group Request message, the group address field
- contains zero.
-
- In all other Request messages, the group address field contains a
- host group address.
-
- In a Create Group Reply message, the group address field contains
- either a newly allocated host group address (if the request is
- granted) or zero (if denied).
-
- In all other Reply messages, the group address field contains the
- same host group address as in the corresponding Request message.
-
- Access Key
-
- In a Create Group Request message, the access key field contains
- zero.
-
- In all other Request messages, the access key field contains the
- access key assigned to the host group identified in the Group
- Address field (zero for public groups).
-
- In a Create Group Reply message, the access key field contains
- either a non-zero 64-bit number (if the request for a private
- group is granted) or zero.
-
- In all other Reply messages, the access key field contains the
- same access key as in the corresponding Request.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering [Page 15]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- Protocol Rules
-
- Request messages are sent only by hosts. Reply messages are sent
- only by multicast agents. If a host receives an IGMP message of a
- type other than the four Reply types specified above, the message
- is discarded.
-
- A Request message is sent with its IP destination field containing
- the well-known address of the Multicast Agent Group. The IP
- time-to-live field is initialized by the sender to 1, in order to
- limit the scope of the request to immediate neighbor multicast
- agents only. The IP source address field contains the individual
- IP address of the sending host.
-
- A Reply message is sent only in response to a Request message.
- Its IP destination address field contains the individual address
- of the host that sent the corresponding Request. (A Confirm Group
- Reply may also be sent to the host group address specified in its
- corresponding Confirm Group Request.) The IP source address field
- contains the individual IP address of the replying multicast
- agent.
-
- When a host sends a new Create Group, Join Group, or Leave Group
- Request message, it supplies an arbitrary identifier that it has
- not used within the last T0 seconds. (It is usually sufficient
- just to increment the identifier for each new request.) The host
- initializes a timer to T1 seconds and a retransmission counter to
- zero. If a Reply message with a matching identifier is not
- received before the timer expires, it is reset to T1 seconds and
- the retransmission counter is incremented. If the counter is less
- than N1, the host retransmits the Request message with the same
- identifier. If the counter equals N1, the host gives up; if the
- request was to create or join a group, it is deemed to have
- failed; if the request was to leave a group, it is deemed to have
- succeeded.
-
- If a "request pending" code is received in a matching reply to a
- Create Group, Join Group, or Leave Group Request, the timer is
- reset to the number of seconds specified by the code and the
- retransmission counter is reset to zero. The new timer value
- applies to one timeout interval only -- if the timer expires, it
- is reset to T1 seconds, the counter is incremented, and the
- request is retransmitted.
-
- The first matching Reply to a Create Group, Join Group, or Leave
- Group Request containing a "request granted" or "request denied"
- code determines the outcome of the request. Any subsequent or
-
-
- Deering [Page 16]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- non-matching Replies are discarded by the host. However, if a
- host receives an affirmative Create Group Reply or Join Group
- Reply that neither matches an outstanding Request nor contains the
- address of a group to which the host belongs, the host should
- immediately send a Leave Group Request for the unexpected group
- address.
-
- A "request granted" reply to a Create Group Request implies that,
- as well as the group being created, the requesting host is granted
- membership in the group, i.e. there is no need to send a separate
- Join Group Request.
-
- Confirm Group Request messages must be sent periodically by hosts
- to inform the neighboring multicast agent(s) of the hosts'
- continuing membership in the specified groups. If an agent does
- not receive a Confirm Group Request message for a particular group
- within an agent-defined interval, it stops delivering datagrams
- destined to that group.
-
- For each group to which it belongs, a host maintains a
- confirmation timer and a variable t. The variable t is
- initialized to T2 seconds. Whenever the host's request to create
- or join a group is granted, and whenever the host either sends a
- Confirm Group Request or receives a Confirm Group Reply with a
- "request granted" code for the group, the host sets the group's
- timer to a random number uniformly distributed between t and t +
- T3 seconds. If the host receives a a Confirm Group Reply with a
- "request pending" code, t is changed to the value of the code and
- the timer is reset to a random number between the new t and t +
- T3. The variable t retains its value until another "request
- pending" code is received. Whenever the timer expires, the host
- sends a Confirm Group Request.
-
- Even if a host fails to receive Confirm Group Replies to its
- Requests, it continues to consider itself a member of the group,
- because it may still be able to receive multicast datagrams from
- other hosts on the same local network. Only if a host receives a
- "request denied" code in a Confirm Group Reply does it stop
- sending Confirm Group Requests and consider its membership to be
- revoked.
-
- Multicast agents respond to Confirm Group Request messages by
- sending Confirm Group Reply messages either to the individual
- sender of the Request or to the host group address specified in
- the Request. By sending back a Confirm Group Reply to all
- neighboring members of a group, a multicast agent is able to reset
- every member's timer with a single packet. The randomization of
-
-
- Deering [Page 17]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- the timers is intended to cause only the one member whose timer
- expires first to send a Confirm Group Request, stimulating a Reply
- to reset all the timers. The use of the "request pending" codes
- allows the multicast agent to control the rate at which it
- receives Confirm Group Requests.
-
- Protocol Timing Constants
-
- The following timing constants are specified for IGMP. They are
- subject to change as a result of operational experience.
-
- T0 = 300 seconds minimum recycle time for identifiers
-
- T1 = 2 seconds retrans. interval for Create/Join/Leave Requests
-
- N1 = 5 tries retrans. limit for Create/Join/Leave Requests
-
- T2 = 15 seconds initial value for Confirm Request variable t
-
- T3 = 15 seconds random range for Confirm Request variable t
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering [Page 18]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- APPENDIX II. HOST GROUP ADDRESS ISSUES
-
- This appendix is not part of the IP multicasting specification, but
- provides background discussion of several issues related to IP host
- group addresses.
-
- Group Address Binding
-
- The binding of IP host group addresses to physical hosts may be
- considered a generalization of the binding of IP unicast
- addresses. An IP unicast address is statically bound to a single
- local network interface on a single IP network. An IP host group
- address is dynamically bound to a set of local network interfaces
- on a set of IP networks.
-
- It is important to understand that an IP host group address is NOT
- bound to a set of IP unicast addresses. The multicast agents do
- not need to maintain a list of individual members of each host
- group. For example, a multicast agent attached to an Ethernet
- need associate only a single Ethernet multicast address with each
- host group having local members, rather than a list of the
- members' individual IP or Ethernet addresses.
-
- Group Addresses as Logical Addresses
-
- Host group addresses have been defined specifically for use in the
- destination address field of multicast IP datagrams. However, the
- fact that group addresses are location-independent (they are not
- statically bound to a single network interface) suggests possible
- uses as more general "logical addresses", both in the source as
- well as the destination address field of datagrams. For example,
- a mobile IP host might have a host group address as its only
- identity, used as the source of datagrams it sends. Whenever the
- mobile host moved from one network to another, it would join its
- own group on the new network and depart from the group on the old
- network. Other hosts communicating with the mobile one would deal
- only with the group address and would be unaware of, and
- unaffected by, the changing network location of the mobile host.
-
- Host group addresses cannot, however, be used to solve all
- problems of internetwork logical addressing, such as delivery to
- the "nearest" or the "least loaded" network interface of a
- multi-homed host. Furthermore, there are hazards in using group
- addresses in the source address field of datagrams when the group
- actually contains more than one host. For instance, the IP
- datagram reassembly algorithm relies on every host using a
- different source address. Also, errors in a datagram sent with a
-
-
- Deering [Page 19]
-
-
-
- RFC 988 July 1986
- Host Extensions for IP Multicasting
-
-
- group source address may result in error reports being returned to
- all members of the group, not just the sender. In view of these
- hazards, this memo specifies the use of host group addresses only
- as destinations of datagrams, either in the destination address
- field or as the last element of a source routing option. However,
- it is recommended that datagrams with a group source address be
- accepted without complaint, thereby allowing other implementations
- to experiment with logical addressing applications of host group
- addresses.
-
- Recycling of Transient Host Group Addresses
-
- Since host group addresses are of fixed, relatively small size,
- transient group addresses must be recycled to satisfy continuing
- requests for creation of new groups. The multicast agents make an
- effort to ensure that a group has no members anywhere in the
- internet before allocating its address to a new group. However,
- under certain conditions of internetwork partitioning and
- membership migration, it is impossible to guarantee unique
- allocation of an address without seriously compromising the
- availability and robustness of host groups. Furthermore, hosts
- that are unaware that a particular group has ceased to exist may
- send datagrams to it long after its address has been assigned to a
- new group. Therefore, hosts should be prepared for the
- possibility of misdelivery of multicast IP datagrams to unintended
- hosts, even in private groups. Such misdelivery can only be
- detected at a level above IP, using higher-level identifiers or
- authentication tokens. (The access key of a private group might
- be used in some applications as such an identifier.) Of course,
- there are other threats to privacy of communication in the
- internet, besides group address collision, such as untrustworthy
- gateways or unsecured networks. End-to-end encryption is an
- effective defense against such threats.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering [Page 20]
-
-